Method and system for acquiring location information

ABSTRACT

The present invention provides a method and a system for acquiring location information. The method includes: generating a positioning instruction according to a wireless positioning request initiated by a first client, and pushing the positioning instruction to a wireless communication client; receiving location information obtained when the wireless communication client performs positioning according to the positioning instruction; and sending the location information to the first client. The system includes: a request processing module, configured to generate a positioning instruction according to a wireless positioning request initiated by a first client, and push the positioning instruction to a wireless communication client; a receiving module, configured to receive location information obtained when the wireless communication client performs positioning according to the positioning instruction; and an information sending module, configured to send the location information to the first client. The accuracy can be improved by adopting the present invention.

RELATED APPLICATION

This application claims priority to Chinese Patent Application No.201210327380.0, entitled “METHOD AND SYSTEM FOR ACQUIRING LOCATIONINFORMATION,” filed on Sep. 6, 2012, which is incorporated by referencein its entirety.

TECHNICAL FIELD

The disclosed implementations relate generally to Internet technologies,and in particular, to a method and a system for acquiring locationinformation.

BACKGROUND

With the development of Internet applications, when a user accesses aWeb site to request for acquiring various kinds of network information,location information corresponding to the user usually needs to beobtained, so as to provide network information for the user according tothe location information. A conventional method for acquiring thelocation information is that, by initiating a location acquisitionrequest to a browser in the Web site, the browser performs positioningaccording to the current network address to obtain correspondinglocation information.

However, the implementation of the method for acquiring the locationinformation must depend on the network address provided by the browser,so as to generate the location information according to correspondencebetween the network address and the geographic location stored in adatabase. But, errors often occur in the location information obtainedaccording to the correspondence between the network address and thegeographic location, and the location information can only be accurateto the city corresponding to the network address; therefore, a defect oflow accuracy exists.

SUMMARY

Accordingly, a method for acquiring location information is provided toimprove the accuracy.

In addition, a system for acquiring location information also needs tobe provided to improve the accuracy.

In accordance with some implementations, a method for providinglocation-based information is performed at a server having one or moreprocessors and memory. The server receives a search request from aclient device, the search request including one or more search keywords.Then server then identifies a user account identifier associated withthe search request and determines location information of a mobiledevice associated with the user account identifier and located near theclient device. Finally, the server identifies a plurality of searchresults in accordance with the search keywords and the locationinformation and returns the plurality of search results to the clientdevice for display.

In accordance with some embodiments, a server system for providinglocation-based information includes one or more processors; memory; andone or more program modules stored in the memory and to be executed bythe one or more processors, the program modules including instructionsfor: receiving a search request from a client device, the search requestincluding one or more search keywords; identifying a user accountidentifier associated with the search request; determining locationinformation of a mobile device associated with the user accountidentifier, wherein the mobile device is located near the client device;identifying a plurality of search results in accordance with the searchkeywords and the location information; and returning the plurality ofsearch results to the client device for display.

In accordance with some implementations, a method for receivinglocation-based information is performed at a client device having one ormore processors and memory. The client device sends a search request toa remote server, the search request including one or more searchkeywords, and receives a plurality of search results from the remoteserver. In some implementations, the search results are ordered by firstlocation information of the client device. The client device determinessecond location information of the client device based on locationinformation of a mobile device located near the client device, reordersthe plurality of search results by the second location information, anddisplays at least a subset of the reordered search results on the clientdevice.

A method for acquiring location information includes the followingsteps:

generating a positioning instruction according to a wireless positioningrequest initiated by a first client, and pushing the positioninginstruction to a wireless communication client;

receiving location information obtained when the wireless communicationclient performs positioning according to the positioning instruction;and

sending the location information to the first client.

A system for acquiring location information includes:

a request processing module, configured to generate a positioninginstruction according to a wireless positioning request initiated by afirst client, and push the positioning instruction to a wirelesscommunication client;

a receiving module, configured to receive location information obtainedwhen the wireless communication client performs positioning according tothe positioning instruction; and

an information sending module, configured to send the locationinformation to the first client.

In the method and the system for acquiring location information, thepositioning instruction is generated according to the wirelesspositioning request initiated in the first client, so that the wirelesscommunication client performs positioning to obtain the locationinformation after receiving the pushed positioning instruction, and thegeographic location of the user can be known according to the locationinformation. Because the location information is obtained through thepositioning of the wireless communication client, the accuracy thereofis much higher than that of the location information obtained accordingto the network address, thereby greatly improving the accuracy.

BRIEF DESCRIPTION OF DRAWINGS

The aforementioned implementation of the invention as well as additionalimplementations will be more clearly understood as a result of thefollowing detailed description of the various aspects of the inventionwhen taken in conjunction with the drawings. Like reference numeralsrefer to corresponding parts throughout the several views of thedrawings.

FIG. 1 is a flow chart of a method for acquiring location informationaccording to an embodiment;

FIG. 2 is a flow chart of a method for generating a positioninginstruction according to a wireless positioning request initiated by afirst client, and pushing the positioning instruction to a wirelesscommunication client in FIG. 1;

FIG. 3 is a flow chart of a method for acquiring location informationaccording to another embodiment;

FIG. 4 is a flow chart of a method for acquiring location informationaccording to another embodiment;

FIG. 5 is a flow chart of a method for acquiring location informationaccording to another embodiment;

FIG. 6 is a sequence diagram of a method for acquiring locationinformation according to an embodiment;

FIG. 7 is a sequence diagram of applying a method for acquiring locationinformation according to an embodiment;

FIG. 8 is a schematic structural diagram of a system for acquiringlocation information according to an embodiment;

FIG. 9 is a schematic structural diagram of a request processing modulein FIG. 8;

FIG. 10 is a schematic structural diagram of a first client according toan embodiment;

FIG. 11 is a schematic structural diagram of a wireless communicationclient according to an embodiment;

FIG. 12 is a block diagram of a network environment including a serversystem and a plurality of client devices coupled to the server systemaccording to some embodiments of the present invention;

FIG. 13 is a block diagram of a client device according to someembodiments of the present invention; and

FIG. 14 is a block diagram of a server system according to someembodiments of the present invention.

DETAILED DESCRIPTION

As shown in FIG. 1, in an embodiment, a method for acquiring locationinformation includes the following steps.

Step S110: Generate a positioning instruction according to a wirelesspositioning request initiated by a first client, and push thepositioning instruction to a wireless communication client correspondingto the first client.

In this embodiment, the first client is a client running in a fixednetwork terminal, and performs positioning through a network address.The fixed network terminal is a device, such as a personal computer(PC), which implements network connection through a medium such as anoptical fiber or a network cable. The first client may be a browser. Thewireless communication client corresponding to the first client runs ina mobile terminal, and is a client having a wireless transceivingcommunication function, such as a smart phone.

The wireless positioning request initiated by the first client isreceived. In this case, it may be known according to the wirelesspositioning request that the first client requests for positioningthrough the wireless communication client, to generate the correspondingwireless positioning instruction, and actively sends the wirelesspositioning instruction to the wireless communication client.

As shown in FIG. 2, in an embodiment, a specific process of Step S110includes the following steps.

Step S111: Acquire a user identifier and a network address accessed bythe first client from the wireless positioning request initiated by thefirst client, and generate a positioning instruction according to theuser identifier and the network address.

In this embodiment, the user identifier is used for uniquely identifyinga user identity in the first client and the wireless communicationclient. The first client and the wireless communication client adopt asame user account system. The network address accessed by the firstclient is a storage address corresponding to page data loaded in therunning first client, namely an IP address. The first client acquiresthe page data from a network server through the network address andloads the page data.

Step S113: Push the positioning instruction to a wireless communicationclient corresponding to the same user identifier.

In this embodiment, the positioning instruction is transmitted actively,so as to push the positioning instruction to a wireless communicationterminal in which a user identifier is the same as the user identifierin the first client. Specifically, the user identifier corresponding tothe first client initiating the wireless positioning request may beknown according to the positioning instruction, so as to push thepositioning instruction according to the user identifier.

As shown in FIG. 3, in another embodiment, before Step S110, the methodfurther includes the following steps.

Step S210: Acquire an access operation in the first client, and obtainan identifier of a user triggering the access operation and an accessednetwork address according to the access operation.

In this embodiment, the access operation is a page access operationtriggered by a user in the first client. For example, the user mayacquire a user identifier corresponding to the user and a networkaddress of a web page by accessing the web page in the first client.

Step S230: Generate a wireless positioning request according to the useridentifier and the network address.

Step S250: Initiate the wireless positioning request according to thenetwork address.

In this embodiment, the wireless positioning request is initiated to thenetwork server storing the page data according to the network address,so as to request the network server to acquire location information ofthe user.

Step S130: Receive location information obtained when the wirelesscommunication client performs positioning according to the positioninginstruction.

In this embodiment, after the positioning instruction is pushed to thewireless communication client, the wireless communication client istriggered to perform positioning through wireless transceivingcommunication so as to obtain a current geographic location of thewireless communication client, generate corresponding locationinformation and upload the location information to the network server.

As shown in FIG. 4, in an embodiment, before Step S130, the methodfurther includes the following steps.

Step S310: Trigger positioning through wireless transceivingcommunication according to the positioning instruction, to obtainlocation information of the wireless communication client.

In this embodiment, the wireless transceiving communication function inthe wireless communication client may be implemented through a globalpositioning system (GPS) or a radio communication network of acommunication operator. After receiving the positioning instruction, thewireless communication client performs positioning through wirelesstransceiving communication to obtain the current geographic location,where the geographic location may include longitude and latitude in acoordinate format.

Step S330: Extract a network address from the positioning instruction,and upload the location information according to the network address.

In this embodiment, after the location information of the wirelesscommunication client is obtained through positioning, the networkaddress is extracted from the positioning instruction including the useridentifier and the network address, so as to upload the locationinformation to the network server according to the network address.

Step S150: Send the location information to the first client.

In this embodiment, when receiving the location information obtainedthrough positioning of the wireless communication terminal, the networkserver returns the location information to the first client initiatingthe wireless positioning request, so that the user can view the locationinformation conveniently.

In the method for acquiring location information, in a scenario wherethe user needs to acquire the current geographic location of the firstclient, the accurate location information can be obtained throughpositioning of the wireless communication terminal. For example, in aconventional scenario of querying the location of the user through thenetwork address, the positioning instruction may be generated throughthe wireless positioning request initiated in the first client; and thenetwork server pushes the positioning instruction to the wirelesscommunication client corresponding to the first client, to furthertrigger the wireless communication client to perform positioning toobtain the location information, and returns the location information tothe first client, so as to display a corresponding query result to theuser. Therefore, the query result is accurate to longitude and latitude,which greatly improves the accuracy of the query.

As shown in FIG. 5, in another embodiment, after Step S130, the methodfurther includes the following steps.

Step S410: Acquire geographic location service information correspondingto the location information, and store the geographic location serviceinformation according to the location information.

In this embodiment, the geographic location service information relatedto the location information is obtained by querying network informationaccording to the location information, and the geographic locationservice information and the location information are storedassociatively, so that the user can conveniently request for accessingthe geographic location service information of the location of the user.

Step S430: Receive a download request initiated by the first client, andsend the geographic location service information downloaded by the firstclient according to the download request.

In this embodiment, the user may trigger a download operation of thegeographic location service information through the first client. Inthis case, the first client initiates a download request to the networkserver storing the location information and the associative geographiclocation service information. After receiving the download request, thenetwork server sends the geographic location service information to acomputer, so that the user can view the geographic location serviceinformation conveniently.

The following describes the method for acquiring location information indetails with reference to a specific embodiment. In this embodiment, asshown in FIG. 6, the user initiates a request to the network serverthrough the first client, and sets that the positioning manner of thelocation of the first client is implemented by the wirelesscommunication client. In this case, a backend network server acquiresthe user identifier of the user in the first client and the accessednetwork address, generates the positioning instruction according to theuser identifier and the network address and pushes the positioninginstruction to the wireless communication client corresponding to thefirst client.

The wireless communication client performs positioning through thewireless transceiving communication to obtain the location informationwhen receiving the positioning instruction, and returns the locationinformation to the network server, so that the network server providesthe location information for the user.

For example, if the user accesses a delicacy recommendation servicebased on the geographic location information through the first client,in this case, for the user, the distance between the recommendeddelicacy information and the current location of the user greatlyinfluences the accuracy of the recommendation. According to the currentposition of the user, the delicacy close to the current position of theuser is recommended to the user, which satisfies the intention of theuser to access the delicacy recommendation service.

As shown in FIG. 7, the first client is a browser. The user accesses thedelicacy recommendation service by loading a web page of the delicacyrecommendation service in the browser, selects the wirelesscommunication client to perform positioning in the web page, andinitiates the wireless positioning request. In this case, the backendnetwork server generates the positioning instruction according to thewireless positioning request, and pushes the positioning instruction tothe wireless communication client according to the user identifier in amessage-pushing manner.

After the wireless communication client receives the pushed positioninginstruction, the user starts the pushed positioning instruction totrigger the wireless communication client to perform positioning, toobtain the location information and upload the location information tothe network server.

The network server screens a large amount of delicacy informationaccording to the location information, to obtain the delicacyinformation that matches the location information, so that the user candownload the delicacy information and display it in the browser.

In the method for acquiring location information, due to the limitationof hardware, the processing capability of the wireless communicationclient is limited, and the wireless communication client cannot providea richer geographic location service for the user. Therefore, thelocation service obtained through the positioning of the wirelesscommunication client is applied in the first client, such as the PC, todisplay a richer geographic location service for the user, therebygreatly promoting the development of the network application based onthe geographic location service.

As shown in FIG. 8, in an embodiment, a system for acquiring locationinformation includes a request processing module 110, a receiving module130 and an information sending module 150.

The request processing module 110 is configured to generate apositioning instruction according to a wireless positioning requestinitiated by a first client, and push the positioning instruction to awireless communication client corresponding to the first client.

In this embodiment, the first client is a client running in a fixednetwork terminal, and performs positioning through a network address.The fixed network terminal is a device, such as a PC, which implementsnetwork connection through a medium such as an optical fiber or anetwork cable. The first client may be a browser. The wirelesscommunication client corresponding to the first client runs in a mobileterminal, and is a client having a wireless transceiving communicationfunction, such as a smart phone.

The request processing module 110 receives the wireless positioningrequest initiated by the first client. In this case, it may be knownaccording to the wireless positioning request that the first clientrequests for positioning through the wireless communication client, togenerate the corresponding wireless positioning instruction, andactively sends the wireless positioning instruction to the wirelesscommunication client.

As shown in FIG. 9, in an embodiment, the request processing module 110includes an instruction generation unit 111 and a pushing unit 113.

The instruction generation unit 111 is configured to acquire a useridentifier and a network address accessed by the first client from thewireless positioning request initiated by the first client, and generatea positioning instruction according to the user identifier and thenetwork address.

In this embodiment, the user identifier is used for uniquely identifyinga user identity in the first client and the wireless communicationclient. The first client and the wireless communication client adopt asame user account system. The network address accessed by the firstclient is a storage address corresponding to page data loaded in therunning first client, namely an IP address. The first client acquiresthe page data from a network server through the network address andloads the page data.

The pushing unit 113 is configured to push the positioning instructionto a wireless communication client corresponding to the same useridentifier.

In this embodiment, the pushing unit 113 actively transmits thepositioning instruction, so as to push the positioning instruction to awireless communication terminal in which a user identifier is the sameas the user identifier in the first client. Specifically, the useridentifier corresponding to the first client initiating the wirelesspositioning request may be known according to the positioninginstruction, so as to push the positioning instruction according to theuser identifier.

As shown in FIG. 10, in another embodiment, the system for acquiringlocation information further includes a first client 210. The firstclient 210 includes an operation processing unit 211, a requestgeneration unit 213 and a transmission unit 215.

The operation processing unit 211 is configured to acquire an accessoperation, and obtain an identifier of a user triggering the accessoperation and an accessed network address according to the accessoperation.

In this embodiment, the access operation is a page access operationtriggered by a user in the first client 210. For example, the user mayacquire a user identifier corresponding to the user and a networkaddress of a web page by accessing the web page in the first client 210.

The request generation unit 213 is configured to generate a wirelesspositioning request according to the user identifier and the networkaddress.

The transmission unit 215 is configured to initiate the wirelesspositioning request according to the network address.

In this embodiment, the transmission unit 215 initiates the wirelesspositioning request to the network server storing the page dataaccording to the network address, so as to request the network server toacquire location information of the user.

The receiving module 130 is configured to receive location informationobtained when the wireless communication client performs positioningaccording to the positioning instruction.

In this embodiment, after the positioning instruction is pushed to thewireless communication client, the wireless communication client istriggered to perform positioning through wireless transceivingcommunication so as to obtain a current geographic location of thewireless communication client, generate corresponding locationinformation and upload the location information to the network server.

As shown in FIG. 11, in another embodiment, the system for acquiringlocation information further includes a wireless communication client310. The wireless communication client 310 includes a positioning unit311 and an uploading unit 313.

The positioning unit 311 is configured to trigger positioning throughwireless transceiving communication according to the positioninginstruction, to obtain location information thereof.

In this embodiment, the wireless transceiving communication function inthe wireless communication client 310 may be implemented through a GPSor a radio communication network of a communication operator. Afterreceiving the positioning instruction, the positioning unit 311 performspositioning through wireless transceiving communication to obtain thecurrent geographic location, where the geographic location may includelongitude and latitude in a coordinate format.

The uploading unit 313 is configured to extract a network address fromthe positioning instruction, and upload the location informationaccording to the network address.

In this embodiment, after the location information of the wirelesscommunication client 310 is obtained through positioning, the uploadingunit 313 extracts the network address from the positioning instructionincluding the user identifier and the network address, so as to uploadthe location information to the network server according to the networkaddress.

The information sending module 150 is configured to send the locationinformation to the first client.

In this embodiment, when the network server receives the locationinformation obtained through positioning of the wireless communicationterminal, the information sending module 150 returns the locationinformation to the first client 210 initiating the wireless positioningrequest, so that the user can view the location informationconveniently.

In the system for acquiring location information, in a scenario wherethe user needs to acquire the current geographic location of the firstclient 210, the wireless communication terminal 310 performs positioningto obtain the accurate location information. For example, in aconventional scenario of querying the location of the user through thenetwork address, the positioning instruction may be generated throughthe wireless positioning request initiated in the first client 210; andthe network server pushes the positioning instruction to the wirelesscommunication client 310 corresponding to the first client, to furthertrigger the wireless communication client 310 to perform positioning toobtain the location information, and returns the location information tothe first client 210, so as to display a corresponding query result tothe user. Therefore, the query result is accurate to longitude andlatitude, which greatly improves the accuracy of the query.

In another embodiment, the system for acquiring location informationfurther includes a geographic location service module.

The geographic location service module is configured to acquiregeographic location service information corresponding to the locationinformation, and store the geographic location service informationaccording to the location information.

In this embodiment, the geographic location service module queries thenetwork information according to the location information, to obtain thegeographic location service information related to the locationinformation, and stores the geographic location service information andthe location information associatively, so that the user canconveniently request for accessing the geographic location serviceinformation of the location of the user.

The information sending module 150 is further configured to receive adownload request initiated by the first client, and send the geographiclocation service information downloaded by the first client according tothe download request.

In this embodiment, the user may trigger the download operation of thegeographic location service information through the first client 210. Inthis case, the information sending module 150 initiates a downloadrequest to the network server storing the location information and theassociative geographic location service information. After receiving thedownload request, the network server sends the geographic locationservice information to a computer, so that the user can view thegeographic location service information conveniently.

In the system for acquiring location information, the carrier of therequest processing module, the receiving module, the information sendingmodule and the geographic location service module may be a networkserver. The acquisition of the location information is implementedthrough the interaction between the first client, the network server andthe wireless communication client, and the system for acquiring locationinformation can implement positioning under the function of the wirelesscommunication client without depending on the browser, thereby improvingthe independence of the system and the smoothness of processing.

In the system for acquiring location information, due to the limitationof hardware, the processing capability of the wireless communicationclient is limited, and the wireless communication client cannot providea richer geographic location service for the user. Therefore, thelocation service obtained through the positioning of the wirelesscommunication client is applied in the first client, such as the PC, todisplay a richer geographic location service for the user, therebygreatly promoting the development of the network application based onthe geographic location service.

In the method and the system for acquiring location information, thepositioning instruction is generated according to the wirelesspositioning request initiated in the first client, so that the wirelesscommunication client performs positioning to obtain the locationinformation after receiving the pushed positioning instruction, and thegeographic location of the user can be known according to the locationinformation. Because the location information is obtained through thepositioning of the wireless communication client, the accuracy thereofis much higher than that of the location information obtained accordingto the network address, thereby greatly improving the accuracy.

As noted above, a method of determining the location of a first clientusing the location of a wireless communication client (e.g., a mobilephone) is disclosed herein if the two clients are adjacent to eachother. An important aspect of this method is that it leverages the moreaccurate positioning capability of the wireless communication client forlocating the first client based on their proximity. As will be describedbelow, there are many applications of the method in today's world sincemore and more people are carrying with them a smartphone that can beaccurately positioned using, e.g., the GPS module in the smartphone orwireless triangulation methods supported by the wireless network coupledto the smartphone.

FIG. 12 is a block diagram of a network environment 1200 including aserver system 1250 and a plurality of client devices 1202 and 1203coupled to the server system 1250 according to some embodiments of thepresent invention. As shown in the figure, the first client is a laptop1203 that is coupled to the communication network 1210 (e.g., theInternet) through an Internet service provider 1220. A user of thelaptop 1203 can access the server system 1250 through the communicationnetwork 1210 and receive services supported by the server system 1250.For example, the user can send a search query to the server system 1250,the search query including one or more search keywords, and receivesearch results from the server system 1250. Meanwhile, the user carriesa smartphone 1202 that is wirelessly coupled to a base station 1222 aadjacent the smartphone. The user can use the data or voice serviceprovided by the wireless operator 1222 through its wireless networkincluding the base station 1222 a as well as the communication network1210. For example, the user can access a website hosted by a web server1240 from the smartphone 1202.

Within the server system 1250, there is a server computer 1251 forreceiving and processing data received from the client devices or theweb servers 1240. For example, in response to the search query from thelaptop 1203, the server computer 1251 queries the database 1252 forinformation matching the search query. Sometimes, the server system 1250may send a separate data request (which could be another search query)to another server system, e.g., a web server 1240, for informationrelated to the search query and then return a set of search results tothe client devices using the search results returned by the database1252 or the web server 1240 or both.

In some implementations, the server system 1250 may need informationfrom both the laptop 1203 and the smartphone 1202 in order to providesatisfactory service to a user. For example, the user may submit asearch request from the laptop 1203 to look for stores (e.g.,restaurants) near the user's current location. There are at least twoways for the server system 1250 to determine the user's current locationwithout requesting the user to provide such information expressly. Forexample, the server system 1250 may identify an IP address associatedwith the laptop 1203 in a search request from the laptop and thendetermine the current location of the laptop 1203 using the identifiedIP address. Alternatively, the server system may identify a wirelesscommunication client (the smartphone 1202 in this case) associated withthe user and submit a location request to the smartphone 1202 or thewireless operator 1222 for a current location of the smartphone 1202.Note that the location information associated with the smartphone 1202is usually more accurate than the location information based on thelaptop's IP address. Using the location information of the smartphone1202, the server system 1250 can identify a set of stores based on theirproximity to the smartphone 1202 and return them to the laptop 1203. Insome implementations, the server system 1250 may identify a set ofstores using the IP address-based location information and then reorderthe set of stores by the he location information of the smartphone 1202.

To determine the current location information of the smartphone 1202,the server system 1250 needs to have the identity of the smartphone1202. In some implementations, the identity of the smartphone 1202 isprovided to the server by the user of the laptop 1203 (e.g., by enteringthe phone number of the smartphone at the laptop 1203). In some otherimplementations, the server system 1250 receives the identity of thesmartphone 1202 from a corresponding user account at the server system1250. To do so, the server system 1250 needs to first determine anidentifier of the user account. In some implementations, the searchrequest from the laptop 1203 includes an identifier of the user accountat the server system 1250. For example, the user of the laptop 1203 logsinto his/her user account before the user sends the search request. Inthis case, the search request may have the user's identity information(e.g., an encrypted pair of username and password) or an identifier of acurrent session generated by the server system 1250 for the user at thelaptop 1203 or a unique key (e.g., a 2D QR code) that can be associatedwith the smartphone 1202. Using the identity information or sessionidentifier or unique key, the server system 1250 looks up the useraccount information in the database 1252 for the smartphone 1202. Forexample, the user may have registered his/her mobile devices (e.g., thesmartphone 1202) with the server system 1250 previously by providing aunique identifier of the smartphone 1202 (e.g., a phone number) to theserver system 1250.

Using the user account identifier in the search request, the serversystem 1250 receives the identifier of the smartphone 1202 from thedatabase 1252 and then determines the current location of the smartphone1202. In some implementations, the server system 1250 may send alocation request including the identifier of the smartphone 1202 to awireless service carrier (e.g., the wireless operator 1222), which maybe in the form of one or more server computers. In response to thelocation request, the wireless service carrier may forward the requestto the mobile device directly and using the identifier. For example, thelocation request may be submitted to a GPS module of the smartphone 1202(not shown in FIG. 12) for receiving its current location. The GPSmodule then returns the current location information to the wirelessservice carrier and ultimately the server system 1250. Alternatively,the wireless service carrier may determine the current location of themobile device using other positioning technologies (e.g., assisted GPS,wireless triangulation or Wi-Fi based indoor positioning technologies)if, e.g., the wireless device does not have a GPS module, or the GPSmodule in the wireless device has been turned off or if there is noreliable GPS signal at the current location of the mobile device (e.g.,the mobile device may be located inside a building).

As noted above, the server system 1250 uses the determined currentlocation information of the mobile device to identify a set of searchresults, e.g., restaurants, adjacent the user and returns them to bedisplayed on the laptop 1203. In some implementations, if there isalready an identified set of search results based on the IPaddress-based location information, the server system 1250 may use thecurrent location information of the mobile device to reorder them basedat least in part on their respective distances from the currentlocation. Before doing so, the server system 1250 may verify theaccuracy of the current location information of the mobile device bycomparing it with the IP address-based location information. Forexample, the server system 1250 may determine not to use the currentlocation information of the mobile device if the difference between thetwo types of location information is more than a predefined threshold(e.g., one mile). In other words, the mobile device registered with theuser account at the server system 1250 may not currently be with theuser. In this case, the server system 1250 only relies upon the IPaddress-based location information for determining the search results.In some implementations, a user can register multiple mobile deviceswith his/her user account at the server system 1250. The server system1250 compares their respective current locations with respect to the IPaddress-based location and only uses a mobile device (e.g., thesmartphone 1202 that the user carries for most of the time) whosecurrent location is deemed to be closest to the IP address-basedlocation for determining the search results.

In some implementations, the server system 1250 shifts theresponsibility of identifying search results based on the currentlocation of the user to the laptop 1203. In this case, the server system1250 determines the IP address-based location information of the laptop1203 or the current location of the mobile device or both and returnsthem to the laptop 1203. Upon receipt of the two types of locationinformation, the laptop 1203 submits a search query to a remote webserver 1240 (e.g., a search engine) for stores near the laptop, thesearch query including the user-provided search terms (e.g., “pizza” or“Chinese food”) and at least one type of location information. In someimplementations, the server system 1250 returns the two types oflocation information to the laptop 1203 separately. For example, the IPaddress-based location information may be returned before the currentlocation information of the mobile device. In this case, the laptop 1203may use the IP address-based location information in the search queryfor receiving an initial set of search results (including theirrespective location information) and then use the subsequently-receivedmore accurate location information of the mobile device (e.g., thesmartphone 1202) for reordering the search results. But before doingthat, the laptop 1203 may compare the difference between the two typesof location information and determine the accuracy of the locationinformation of the mobile device. For example, if the two types oflocation information are more than one mile from each other (e.g., theuser may have left his/her smartphone at home), there should be nore-ordering of the search results. Finally, the laptop 1203 displays thesearch results to the user based at least in part on their respectivedistance to the determined location of the user.

FIG. 13 is a diagram of an example implementation of a client device1203 (e.g., laptop), discussed above with reference to FIG. 12. Whilecertain specific features are illustrated, those skilled in the art willappreciate from the present disclosure that various other features havenot been illustrated for the sake of brevity and so as not to obscuremore pertinent aspects of the implementations disclosed herein. To thatend, the client device 1203 includes one or more processing units(CPU's) 1302, one or more network or other communications interfaces1312, a user interface 1304 including a display 1308 and keyboard/mouse1306, memory 1314, and one or more communication buses 1310 forinterconnecting these and various other components. The communicationbuses 1310 may include circuitry (sometimes called a chipset) thatinterconnects and controls communications between different components.The memory 1314 includes high-speed random access memory, such as DRAM,SRAM, DDR RAM or other random access solid state memory devices; and mayinclude non-volatile memory, such as one or more magnetic disk storagedevices, optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. The memory 1314 may optionallyinclude one or more storage devices remotely located from the CPU(s)1302. The memory 1314, including the non-volatile and volatile memorydevice(s) within the memory 1314, comprises a non-transitory computerreadable storage medium.

In some implementations, the memory 1314 or the non-transitory computerreadable storage medium of the memory 1314 stores the followingprograms, modules and data structures, or a subset thereof including anoperating system 1316, a network communication module 1318, and one ormore applications 1320. The operating system 1316 includes proceduresfor handling various basic system services and for performing hardwaredependent tasks. The network communication module 1318 facilitatescommunication with other devices via the one or more communicationnetwork interfaces 1312 (wired or wireless) and one or morecommunication networks, such as the Internet, other wide area networks,local area networks, metropolitan area networks, and so on.

The applications 1320 include a web browser module 1322 for receiving asearch request 1324, including a plurality of search parameters 1324 a,from a user of the client device 1203 and one or more search results1324 b associated with the search result. In some implementations, thesearch parameters 1324 a include one or more search keywords and aunique identifier corresponding to a user account at the server system1250 for identifying the mobile device associated with the current userof the client device 1203. The applications 1320 also include a useraccount identifier determination module 1330 that further includes auser account identifier 1330 a to be provided to the search request1324. In some implementations, the user account identifier determinationmodule 1330 receives the user account identifier 1330 a from anotherapplication on the client device 1203 after the user logs into his/heruser account at the remote server system 1250 through the application.The applications 1320 also include a search result processing module1340 for processing the search results returned from a remote server(which may be the server system 1250 or a search engine) using thestored location information 1340 a. As noted above, the IP address-basedsearch results may be reordered by the current location of a mobiledevice (e.g., the smartphone 1202) adjacent the client device. Thisre-ordering process may be performed by the search result processingmodule 1340 at the client device 1203.

FIG. 14 is a block diagram of different components in the server system1250 according to some embodiments of the present invention. The serversystem 1250 includes memory 1412; one or more processors 1402 forexecuting modules, programs and/or instructions stored in the memory1412 and thereby performing predefined operations; one or more networkor other communications interfaces 1410; and one or more communicationbuses 1414 for interconnecting these components. In someimplementations, the server system 1250 includes an optional userinterface 1404 comprising a display device 1408 and one or more inputdevices 1406 (e.g., keyboard or mouse). In some implementations, thememory 1412 includes high-speed random access memory, such as DRAM,SRAM, or other random access solid state memory devices. In someimplementations, memory 1412 includes non-volatile memory, such as oneor more magnetic disk storage devices, optical disk storage devices,flash memory devices, or other non-volatile solid state storage devices.In some implementations, memory 1412 includes one or more storagedevices remotely located from the processor(s) 1402. Memory 1412, oralternately one or more storage devices (e.g., one or more nonvolatilestorage devices) within memory 1412, includes a non-transitory computerreadable storage medium. In some implementations, memory 1412 or thecomputer readable storage medium of memory 1412 stores the followingprograms, modules and data structures, or a subset thereof:

-   -   an operating system 1416 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a network communications module 1418 that is used for connecting        the server system 1250 to other computers (e.g., the client        devices 1202/1203 in FIG. 12) via the communication network        interfaces 1410 and one or more communication networks (wired or        wireless), such as the communication network 1210 in FIG. 12,        other wide area networks, local area networks, metropolitan area        networks, etc.;    -   a location determination module 1420 for determining the two        types of location information for a client device: (i) the IP        address-based location information and (ii) the current location        information of a mobile device associated with a user account at        the server system 1250;    -   a search processing module 1422 for receiving a search request        1424 from the client device, the search request 1424 including        one or more search parameters 1430 and a plurality of search        results 1432 associated with the search request 1424; and    -   a user account database 1434 including a plurality of user        account entries, each user account entry 1436 including a user        account identifier 1438 for uniquely identifying a user of the        server system 1250 (in some implementations, the user account        identifier 1438 includes a session identifier representing the        current session of the user), a mobile device identifier 1440        for uniquely identifying a mobile device such as a smartphone        associated with the user (in some implementations, the mobile        device identifier includes certain mobile device information,        e.g., the model number of the device, which can be used by the        server system 1250 for deciding on how to determine the current        location of the device, e.g., using its GPS module or the        wireless triangulation method provided by the wireless service        carrier), and one or two types of location information 1442        associated with the mobile device.

In some implementations, the location determination module 1420 providesboth type of location information to the search processing module 1422.The search processing module 1422 then first determines a set of searchresults using the IP address-based location information and thenreorders them using the current location of the mobile device identifiedby the mobile device identifier 1440. In some other implementations, thesearch processing module 1422 returns the initial set of search resultsbased on the IP address-based location information and the currentlocation information of the mobile device to the corresponding clientdevice so that the client device performs the re-ordering operation.

It should be noted that the modules, databases, and models in the serversystem 1250 describe above in connection with FIG. 14 may be implementedon a single computer server or distributed among multiple computerservers that are connected by a computer network. Although a specifichardware configuration may affect the performance of the server system1250, the implementation of the present application is not dependent ona particular hardware configuration.

Persons of ordinary skill in the art may understand that all or a partof the flow of the method according to the embodiments may beimplemented by a computer program instructing relevant hardware. Theprogram may be stored in a computer readable storage medium. When theprogram is run, the flow of the embodiment of the foregoing method maybe included. The storage medium may be a magnetic disk, an optical disk,a read-only memory (ROM) or a random access memory (RAM) and the like.

The foregoing embodiments merely describe some implementation manners ofthe present invention, and the description thereof is specific anddetailed, but should not be construed as the limitation to theprotection scope of the present invention. It should be noted that,persons of ordinary skills in the art may also make variations andmodifications without departing from the idea of the present invention,which all belong to the protection scope of the present invention.Therefore, the protection scope of the present invention shall besubjected to the appended claims.

While particular embodiments are described above, it will be understoodit is not intended to limit the invention to these particularembodiments. On the contrary, the invention includes alternatives,modifications and equivalents that are within the spirit and scope ofthe appended claims. Numerous specific details are set forth in order toprovide a thorough understanding of the subject matter presented herein.But it will be apparent to one of ordinary skill in the art that thesubject matter may be practiced without these specific details. In otherinstances, well-known methods, procedures, components, and circuits havenot been described in detail so as not to unnecessarily obscure aspectsof the embodiments.

Although the terms first, second, etc. may be used herein to describevarious elements, these elements should not be limited by these terms.These terms are only used to distinguish one element from another. Forexample, first ranking criteria could be termed second ranking criteria,and, similarly, second ranking criteria could be termed first rankingcriteria, without departing from the scope of the present invention.First ranking criteria and second ranking criteria are both rankingcriteria, but they are not the same ranking criteria.

The terminology used in the description of the invention herein is forthe purpose of describing particular embodiments only and is notintended to be limiting of the invention. As used in the description ofthe invention and the appended claims, the singular forms “a,” “an,” and“the” are intended to include the plural forms as well, unless thecontext clearly indicates otherwise. It will also be understood that theterm “and/or” as used herein refers to and encompasses any and allpossible combinations of one or more of the associated listed items. Itwill be further understood that the terms “includes,” “including,”“comprises,” and/or “comprising,” when used in this specification,specify the presence of stated features, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, operations, elements, components, and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon”or “in response to determining” or “in accordance with a determination”or “in response to detecting,” that a stated condition precedent istrue, depending on the context. Similarly, the phrase “if it isdetermined [that a stated condition precedent is true]” or “if [a statedcondition precedent is true]” or “when [a stated condition precedent istrue]” may be construed to mean “upon determining” or “in response todetermining” or “in accordance with a determination” or “upon detecting”or “in response to detecting” that the stated condition precedent istrue, depending on the context.

Although some of the various drawings illustrate a number of logicalstages in a particular order, stages that are not order dependent may bereordered and other stages may be combined or broken out. While somereordering or other groupings are specifically mentioned, others will beobvious to those of ordinary skill in the art and so do not present anexhaustive list of alternatives. Moreover, it should be recognized thatthe stages could be implemented in hardware, firmware, software or anycombination thereof.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific implementations. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theimplementations were chosen and described in order to best explainprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious implementations with various modifications as are suited to theparticular use contemplated. Implementations include alternatives,modifications and equivalents that are within the spirit and scope ofthe appended claims. Numerous specific details are set forth in order toprovide a thorough understanding of the subject matter presented herein.But it will be apparent to one of ordinary skill in the art that thesubject matter may be practiced without these specific details. In otherinstances, well-known methods, procedures, components, and circuits havenot been described in detail so as not to unnecessarily obscure aspectsof the implementations.

What is claimed is:
 1. A method for acquiring location information,comprising: generating a positioning instruction according to a wirelesspositioning request initiated by a first client, and pushing thepositioning instruction to a wireless communication client correspondingto the first client; receiving location information obtained when thewireless communication client performs positioning according to thepositioning instruction; and sending the location information to thefirst client.
 2. The method for acquiring location information accordingto claim 1, wherein the step of generating a positioning instructionaccording to a wireless positioning request initiated by a first client,and pushing the positioning instruction to a wireless communicationclient corresponding to the first client comprises: acquiring a useridentifier and a network address accessed by the first client from thewireless positioning request initiated by the first client, andgenerating a positioning instruction according to the user identifierand the network address; and pushing the positioning instruction to awireless communication client corresponding to the same user identifier.3. The method for acquiring location information according to claim 2,wherein before the step of generating a positioning instructionaccording to a wireless positioning request initiated by a first client,and pushing the positioning instruction to a wireless communicationclient corresponding to the first client, the method further comprises:acquiring an access operation in the first client, and obtaining anidentifier of a user triggering the access operation and an accessednetwork address according to the access operation; generating a wirelesspositioning request according to the user identifier and the networkaddress; and initiating the wireless positioning request according tothe network address.
 4. The method for acquiring location informationaccording to claim 2, wherein the step of receiving location informationobtained when the wireless communication client performs positioningaccording to the positioning instruction comprises: triggeringpositioning through wireless transceiving communication according to thepositioning instruction, to obtain location information of the wirelesscommunication client; and extracting a network address from thepositioning instruction, and uploading the location informationaccording to the network address.
 5. The method for acquiring locationinformation according to claim 2, wherein after the step of receivinglocation information obtained when the wireless communication clientperforms positioning according to the positioning instruction, themethod further comprises: acquiring geographic location serviceinformation corresponding to the location information, and storing thegeographic location service information according to the locationinformation; and receiving a download request initiated by the firstclient, and sending the geographic location service informationdownloaded by the first client according to the download request.
 6. Asystem for acquiring location information, comprising: a requestprocessing module, configured to generate a positioning instructionaccording to a wireless positioning request initiated by a first client,and push the positioning instruction to a wireless communication clientcorresponding to the first client; a receiving module, configured toreceive location information obtained when the wireless communicationclient performs positioning according to the positioning instruction;and an information sending module, configured to send the locationinformation to the first client.
 7. The system for acquiring locationinformation according to claim 6, wherein the request processing modulecomprises: an instruction generation unit, configured to acquire a useridentifier and a network address accessed by the first client from thewireless positioning request initiated by the first client, and generatea positioning instruction according to the user identifier and thenetwork address; and a pushing unit, configured to push the positioninginstruction to a wireless communication client corresponding to the sameuser identifier.
 8. The system for acquiring location informationaccording to claim 7, further comprising the first client, wherein thefirst client comprises: an operation processing unit, configured toacquire an access operation, and obtain an identifier of a usertriggering the access operation and an accessed network addressaccording to the access operation; a request generation unit, configuredto generate a wireless positioning request according to the useridentifier and the network address; and a transmission unit, configuredto initiate the wireless positioning request according to the networkaddress.
 9. The system for acquiring location information according toclaim 7, further comprising the wireless communication client, whereinthe wireless communication client comprises: a positioning unit,configured to trigger positioning through wireless transceivingcommunication according to the positioning instruction, to obtainlocation information thereof; and an uploading unit, configured toextract a network address from the positioning instruction, and uploadthe location information according to the network address.
 10. Thesystem for acquiring location information according to claim 7, furthercomprising: a geographic location service module, configured to acquiregeographic location service information corresponding to the locationinformation, and store the geographic location service informationaccording to the location information, wherein the information sendingmodule is further configured to receive a download request initiated bythe first client, and send the geographic location service informationdownloaded by the first client according to the download request.
 11. Amethod for providing location-based information, comprising: at a serverhaving one or more processors and memory: receiving a search requestfrom a client device, the search request including one or more searchkeywords; identifying a user account identifier associated with thesearch request; determining location information of a mobile deviceassociated with the user account identifier, wherein the mobile deviceis located near the client device; identifying a plurality of searchresults in accordance with the search keywords and the locationinformation; and returning the plurality of search results to the clientdevice for display.
 12. The method according to claim 11, whereindetermining location information of the mobile device further includes:sending a location request to the mobile device; and receiving thelocation information of the mobile device from the mobile device. 13.The method according to claim 11, wherein determining locationinformation of the mobile device further includes: sending a locationrequest to a wireless service carrier associated with the mobile device,the location request including a device identifier of the mobile device;and receiving the location information of the mobile device from thewireless service carrier.
 14. The method according to claim 11, whereinidentifying a plurality of search results further includes: determiningfirst location information of the client device based on an IP addressof the client device; identifying a first set of search results inaccordance with the search keywords and the first location information;and reordering the first set of search results by the locationinformation of the mobile device.
 15. A method for receivinglocation-based information, comprising: at a client device having one ormore processors and memory: sending a search request to a remote server,the search request including one or more search keywords and a useraccount identifier; receiving a plurality of search results from theremote server, wherein the search results are ordered by locationinformation of a mobile device located near the client device andassociated with the user account identifier; and displaying at least asubset of the reordered search results on the client device.
 16. Themethod according to claim 15, wherein the remote server is configuredto: determine first location information of the client device based onan IP address of the client device; identify a set of search results inaccordance with the search keywords and the first location information;and reorder the first set of search results by the location informationof the mobile device.
 17. A method for receiving location-basedinformation, comprising: at a client device having one or moreprocessors and memory: sending a search request to a remote server, thesearch request including one or more search keywords; receiving aplurality of search results from the remote server, wherein the searchresults are ordered by first location information of the client device;determining second location information of the client device based onlocation information of a mobile device located near the client device;reordering the plurality of search results by the second locationinformation; and displaying at least a subset of the reordered searchresults on the client device.
 18. The method according to claim 17,wherein the first location information of the client device isdetermined based an IP address of the client device.
 19. The methodaccording to claim 17, wherein the second location information of theclient device is determined by: sending a location request to a remoteserver, the location request including a user account identifier thatcorresponds to the mobile device; and receiving the location informationof the mobile device from the remote server, wherein the remote serveris configured to retrieve the location information of the mobile deviceby sending a location query to the mobile device or a wireless servicecarrier associated with the mobile device.
 20. A server system forproviding location-based information, comprising: one or moreprocessors; memory; and one or more program modules stored in the memoryand to be executed by the one or more processors, the program modulesincluding instructions for: receiving a search request from a clientdevice, the search request including one or more search keywords;identifying a user account identifier associated with the searchrequest; determining location information of a mobile device associatedwith the user account identifier, wherein the mobile device is locatednear the client device; identifying a plurality of search results inaccordance with the search keywords and the location information; andreturning the plurality of search results to the client device fordisplay.